import 'package:equatable/equatable.dart';

class ImageState extends Equatable {
  const ImageState();

  @override
  List<Object> get props => [];
}

class ImageInitialState extends ImageState {}

class ImageCountState extends ImageState {
  final int count;

  const ImageCountState(this.count);

  @override
  List<Object> get props => [count];
}

class ImageLoadingState extends ImageCountState {
  final int index;

  const ImageLoadingState(this.index, int count) : super(count);

  @override
  List<Object> get props => [index];
}

class ImageLoadedState extends ImageCountState {
  final int index;
  final String filePath;

  const ImageLoadedState(this.index, this.filePath, int count) : super(count);

  @override
  List<Object> get props => [index, filePath];
}

class ImageErrorState extends ImageCountState {
  final int index;
  final String error;

  const ImageErrorState(this.index, this.error, int count) : super(count);

  @override
  List<Object> get props => [index, error];
}